로그인
마치 건물에 들어갈 때 출입증이나 신분증을 보여주는 것과 같아요. "제가 바로 OOO 입니다." 라고 증명하는 단계죠.
출입증을 보여주고 건물에 들어왔더라도, 모든 사무실에 들어갈 수는 없죠. 본인에게 허가된 곳만 들어갈 수 있는 것, 이것이 바로 인가입니다.
사용자 정보 보호
데이터 무결성 유지
악의적인 접근 방지
"인증은 신분증 검사, 인가는 입장권 검사라고 생각하면 쉬워요. 백엔드에서 이 두 가지를 잘 관리해야 우리 앱이 안전하게 운영될 수 있죠!"
현재까지 우리가 만든 API는 기본적으로 공개(인증 불필요) 상태입니다.
즉, URL만 알면 누구나 데이터를 요청할 수 있습니다.
다음 달에는 HandStack을 이용하여 강력한 보안 기능을 추가할 것입니다.
잠시 시간을 내어 '개인정보 유출', '해킹 사례' 등 보안 관련 뉴스 기사나 영상을 검색해 보세요.
우리가 왜 코드를 통해 보안을 신경 써야 하는지 더욱 현실적으로 와닿을 것입니다.
개발자에게 보안은 선택이 아닌 필수입니다.
우리는 HandStack을 사용하며 자연스럽게 계층을 나누어 개발해왔습니다.
Controller
Service/Business Logic
Repository/Model
왜 역할을 나눌까요?
클린 코드란, 동료 개발자가 읽고 이해하기 쉬운 코드입니다.
코드는 한번 작성하고 끝나는 것이 아니라, 계속 읽히고 수정됩니다.
간단한 원칙
의미 있는 이름 짓기: 변수/함수 이름만 봐도 역할을 알 수 있게 (예: a (X) -> articleCount (O))
a
articleCount
하나의 함수는 하나의 일만: 여러 기능을 하는 함수는 작게 분리 (예: GetArticleAndSendEmail() (X) -> GetArticle(), SendEmail() (O))
GetArticleAndSendEmail()
GetArticle()
SendEmail()
우리가 만든 API를 다른 사람(프론트엔드 개발자, 동료)은 어떻게 사용해야 할까요?
API 명세서(문서)는 협업과 소통을 위한 필수 도구입니다.
Swagger/OpenAPI 같은 도구를 사용하면 API를 자동으로 문서화할 수 있습니다.
HandStack은 이러한 도구와 쉽게 연동하여 문서 생성을 지원할 수 있습니다.
"이 변수 이름은 더 좋은 이름이 없을까?" "이 코드는 너무 긴데, 함수로 따로 빼면 더 깔끔하지 않을까?" "한 달 뒤에 내가 이 코드를 다시 봐도 바로 이해할 수 있을까?"
"이 변수 이름은 더 좋은 이름이 없을까?"
"이 코드는 너무 긴데, 함수로 따로 빼면 더 깔끔하지 않을까?"
"한 달 뒤에 내가 이 코드를 다시 봐도 바로 이해할 수 있을까?"
"HandStack은 기본적인 프로젝트 구조 자체가 모범적인 아키텍처를 따르도록 유도하기 때문에, 초보자도 자연스럽게 좋은 코드 습관을 익힐 수 있습니다."
오늘 배운 것
다음 달 예고
지금까지 정말 수고 많으셨습니다.
여러분은 이미 백엔드 개발의 중요한 기초를 성공적으로 다졌습니다!